package it.unisa.ingegneria.tdp.grafoVento;

import java.util.ArrayList;
import java.util.List;



public class Graph<T> {
	
	//private List<Node<T>> g;
	private Node<T> nodo_partenza;
	
	
	public Graph(){
	//g=new ArrayList<Node<T>>();
	
	}
	public void setNodoPartenza(Node<T> node){
		this.nodo_partenza=node;
	}
		
	public Node<T> getNodoPartenza(){
		return nodo_partenza;
	}
	
	/*public void setRoot(Node<T> node){
		root=node;
	}*/
//	
//	public void bfs(Node <T> succ){
//		
//		Node root=g.get(0);
//		Queue apertura=new Queue();
//		List<Node> chiusura=new ArrayList();
//		apertura.a
//		
//				
//	}

	public void bfs_r(Node <T> succ){
		
		List<Node<T>> vicini= succ.getVicini();
		int num=0;
		for(int i=0;i<vicini.size();i++){
			if(vicini.get(i).getColor()==0)
				num++;
		}
		if(num==0){
			succ.setColor(2);
			System.out.println(succ.getData());
		}
		else{
			succ.setColor(2);
			System.out.println(succ.getData());
			for(int i=0;i<vicini.size();i++){
				if(vicini.get(i).getColor()==0)
					vicini.get(i).setColor(1);
			}
			
			for(int j=0;j<vicini.size();j++){
				if(vicini.get(j).getColor()==1)
				bfs_r(vicini.get(j));
			}
		}
			
		
	}
}
